ποΈGitΠ―ΡΠ°ποΈ
scripts/verify-flatpak/README.md 2fa11507c5e66f93d7cfcb892c2becc5ee5381d8 (2fa11507) Text, 3.17 KB
Local Flatpak Verification
Replicates vid's T383838org.meshtastic.desktop GHA flatpak build on your machine so you
can validate T383838flatpak-sources.json end-to-end without round-tripping through his repo.
What it tests that our CI doesn't
Our CI (T383838:desktopApp:assemble :captureFlatpakSources) only proves the manifest can be generated.
Vid's CI is where the manifest actually gets consumed by T383838flatpak-builder. This script
runs that step locally:
1. Clones T383838vidplace7/org.meshtastic.desktop.
2. Overlays a patched manifest that:
β’ Swaps the T383838meshtastic/Meshtastic-Android.git source for a T383838type: dir pointing at
your local checkout (so you can test uncommitted changes).
β’ Uncomments T383838- flatpak-sources.json.
β’ Drops T383838--share=network from the build-args (true offline β what Flathub requires).
β’ Adds T383838--offline to the Gradle invocation (belt + suspenders).
3. Runs T383838flatpak-builder in a Docker container with the same Freedesktop 25.08 SDK
vid's GHA image uses.
If your T383838flatpak-sources.json has the wrong URL, wrong sha256, or a missing entry,
the build fails with the same error vid would see. You can iterate in ~5β15 min loops
instead of waiting on cross-repo CI.
Prerequisites
β’ Docker (Docker Desktop on macOS works β the container needs T383838--privileged to use
bubblewrap; that's enabled by default).
β’ ~10 GB free disk for the SDK + Gradle cache.
β’ A populated Gradle cache (T383838./gradlew :desktopApp:assemble must have run; the script
does this implicitly via T383838:captureFlatpakSources).
Usage
T282828
T8b949e# Full offline build (~10β20 min the first time, faster after β Docker image is cached)
scripts/verify-flatpak/verify.sh
T8b949e# Cross-arch test via QEMU emulation (slower)
scripts/verify-flatpak/verify.sh --arch aarch64
T8b949e# Drop into the builder container shell to poke at things
scripts/verify-flatpak/verify.sh --shell
Interpreting failures
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β Symptom β Likely cause β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β T383838Error downloading mirror: ... 404 on T383838repo.maven.apache.org β URL captured by the listener was wβ¦ β
β T383838sha256 mismatch β Stale T383838flatpak-sources.json; re-runβ¦ β
β Gradle: T383838Could not resolve all artifacts ... offline mode β Missing dep in the manifest β usuaβ¦ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββ
Files
β’ T383838verify.sh β entry point. Idempotent: re-running just re-syncs the overlay and re-runs flatpak-builder.
β’ T383838desktop-offline.yaml β patched manifest. Kept in sync manually with vid's upstream;
diff against T383838https://raw.githubusercontent.com/vidplace7/org.meshtastic.desktop/main/org.meshtastic.desktop.yaml
if vid changes something material.
Served by rngit 1.5.0 - Generated in 0.04s